綁定:將xml中的元件與Kotlin程式碼做連結。
監聽事件:開發者可以在程式碼中攔截使用者的操作過程。
在Ch2的練習中有幫每一個元件設定了ID,此ID也可用於在程式碼中識別特定元件,查看MainActivity.kt可查看到下述程式碼
setContentView(R.layout.activity_main)
此段程式碼正是透過R類別指定要使用的layout檔為activity_main.xml,也就是將R.layout.activity_main作為參數傳遞給setContentView()方法,以完成元件與程式碼綁定
而針對XML中的元件則使用
val ed_name = findViewByID<EditText>(R.id.ed_name)
findViewByID()方法會依據傳入參數(R.id.xxx)的識別標籤,從XML找到對應的元件傳回至程式碼中。
由於findViewByID()型態為View,View型態是所有元件的原始類別,故需要明確告知此元件類型,例如上段程式碼中加入了,將View型態轉型(Casting)成EditText
當編寫完findViewByID()後會發現顯示「Unresolved reference」,這是因為它們來自其他套件,此時只要點選有問題的元件,按下Alt+Enter後,就會自動匯入程式碼
常見的四種監聽器,可以用「setOn」在AS中篩選可用監聽器
OnClickListener
btn_mora.OnClickListener{
}
OnLongClickListener
btn_mora.OnLongClickListener{
false
}
OnTouchClickListener
btn_mora.OnTouchClickListener{ v,event ->
false
}
OnCheckedChangeListener
btn_mora.OnCheckedChangeListener{ group,checkedId ->
}
TextView可以透過.text修改文字內容,但EditText必須將字串傳入setText()方法才能修改,所以開發者可以用toString()方法,將回傳資料轉換成字串類型使用